import Mock from 'mockjs'

// TOKEN
const USERTOKEN = 'sdfdf231fds'
const ADMINTOKEN = 'isdfnvx123s'
// TOKEN列表
const tokens = {
  admin: ADMINTOKEN,
  user: USERTOKEN
}
/* 下面所说的权限列表其实就是路由列表 */
// 所有的权限列表

// 普通用户
const userMenus = [
  {
    id: 1,
    label: '基础信息管理',
    parentId: '',
    isEnd: 1, // 是否终结点（0表示true终结点，1表示false非终结点）
    path: '/mimi',
    // redirect: '/mimi/list',
    component: 'Main',  // 修改了此处，就可以加载出头部和左侧菜单栏了
    // 当 设置 true 的时候该路由不会在侧边栏出现
    order: 1,
    hidden: false,
    disable: 1, // 是否禁用（0表示禁用，1表示启用；比如新增了菜单，但是未写好代码，就禁用不能访问）
    icon: '',
    children: [
      {
        id: 6,
        label: '资产管理',
        parentId: 1,
        isEnd: 1,
        path: '',
        component: 'assets',
        order: 6,
        hidden: false,
        disable: 1,
        icon: '',
        children: [
          {
            id: 13,
            label: 'U盘资产',
            parentId: 6,
            isEnd: 0,
            path: 'list',
            component: 'AssetsUdiskList',
            order: 13,
            hidden: false,
            disable: 1,
            icon: '',
          },
          {
            id: 14,
            label: '终端资产',
            parentId: 6,
            isEnd: 0,
            path: 'assets/terminalList',
            component: 'AssetsTerminalList',
            order: 14,
            hidden: false,
            disable: 1,
            icon: '',
          },
          {
            id: 15,
            label: '打印机资产',
            parentId: 6,
            isEnd: 0,
            path: 'assets/printerList',
            component: 'AssetsPrinterList',
            order: 15,
            hidden: false,
            disable: 1,
            icon: '',
          },
          {
            id: 16,
            label: '刻录机资产',
            parentId: 6,
            isEnd: 0,
            path: 'assets/burnerList',
            component: 'AssetsBurnerList',
            order: 16,
            hidden: false,
            disable: 1,
            icon: '',
          },
        ]
      },
    ]
  },
]

// 管理员
const adminMenus = [
  {
    id: 1,
    label: '基础信息管理',
    parentId: '',
    isEnd: 1, // 是否终结点（0表示true终结点，1表示false非终结点）
    path: '/mimi',
    // redirect: '/mimi/list',
    component: 'Main',  // 修改了此处，就可以加载出头部和左侧菜单栏了
    // 当 设置 true 的时候该路由不会在侧边栏出现
    order: 1,
    hidden: false,
    disable: 1, // 是否禁用（0表示禁用，1表示启用；比如新增了菜单，但是未写好代码，就禁用不能访问）
    icon: '',
    children: [
      {
        id: 6,
        label: '资产管理',
        parentId: 1,
        isEnd: 1,
        path: '',
        component: 'assets',
        order: 6,
        hidden: false,
        disable: 1,
        icon: '',
        children: [
          {
            id: 13,
            label: 'U盘资产',
            parentId: 6,
            isEnd: 0,
            path: 'list',
            component: 'AssetsUdiskList',
            order: 13,
            hidden: false,
            disable: 1,
            icon: '',
          },
          {
            id: 14,
            label: '终端资产',
            parentId: 6,
            isEnd: 0,
            path: 'assets/terminalList',
            component: 'AssetsTerminalList',
            order: 14,
            hidden: false,
            disable: 1,
            icon: '',
          },
          {
            id: 15,
            label: '打印机资产',
            parentId: 6,
            isEnd: 0,
            path: 'assets/printerList',
            component: 'AssetsPrinterList',
            order: 15,
            hidden: false,
            disable: 1,
            icon: '',
          },
          {
            id: 16,
            label: '刻录机资产',
            parentId: 6,
            isEnd: 0,
            path: 'assets/burnerList',
            component: 'AssetsBurnerList',
            order: 16,
            hidden: false,
            disable: 1,
            icon: '',
          },
        ]
      },
      {
        id: 7,
        label: '人员管理',
        parentId: 1,
        isEnd: 1,
        path: '',
        component: 'person',
        order: 7,
        hidden: false,
        disable: 1,
        icon: '',
        children: [
          {
            id: 17,
            label: '人员信息',
            parentId: 7,
            isEnd: 0,
            path: 'person/personList',
            component: 'PersonPersonList',
            order: 17,
            hidden: false,
            disable: 1,
            icon: '',
          },
        ]
      },
    ]
  },
  {
    id: 3,
    label: '告警分析',
    parentId: '',
    isEnd: 1, // 是否终结点（0表示true终结点，1表示false非终结点）
    path: '/alarm',
    // redirect: '/mimi/list',
    component: 'Main',  // 修改了此处，就可以加载出头部和左侧菜单栏了
    // 当 设置 true 的时候该路由不会在侧边栏出现
    order: 3,
    hidden: false,
    disable: 1, // 是否禁用（0表示禁用，1表示启用；比如新增了菜单，但是未写好代码，就禁用不能访问）
    icon: '',
    children: [
      {
        id: 10,
        label: '用户行为告警',
        parentId: 3,
        isEnd: 1,
        path: '',
        component: 'alarm',
        order: 10,
        hidden: false,
        disable: 1,
        icon: '',
        children: [
          {
            id: 19,
            label: 'U盘使用告警',
            parentId: 10,
            isEnd: 0,
            path: 'list',
            component: 'UdiskAlarm',
            order: 19,
            hidden: false,
            disable: 1,
            icon: '',
          },
          {
            id: 20,
            label: '终端使用告警',
            parentId: 10,
            isEnd: 0,
            path: 'userAlarm/terminalAlarm',
            component: 'TerminalAlarm',
            order: 20,
            hidden: false,
            disable: 1,
            icon: '',
          },
        ]
      },
    ]
  },
  {
    id: 4,
    label: '系统管理',
    parentId: '',
    isEnd: 1, // 是否终结点（0表示true终结点，1表示false非终结点）
    path: '/system',
    // redirect: '/mimi/list',
    component: 'Main',  // 修改了此处，就可以加载出头部和左侧菜单栏了
    // 当 设置 true 的时候该路由不会在侧边栏出现
    order: 4,
    hidden: false,
    disable: 1, // 是否禁用（0表示禁用，1表示启用；比如新增了菜单，但是未写好代码，就禁用不能访问）
    icon: '',
    children: [
      {
        id: 11,
        label: '菜单管理',
        parentId: 4,
        isEnd: 0,
        path: 'list',
        component: 'Menu',
        order: 11,
        hidden: false,
        disable: 1,
        icon: '',
      },
      {
        id: 12,
        label: '角色管理',
        parentId: 4,
        isEnd: 0,
        path: 'role',
        component: 'Role',
        order: 12,
        hidden: false,
        disable: 1,
        icon: '',
      },
      {
        id: 13,
        label: '编辑角色',
        parentId: 4,
        isEnd: 0,
        // 需要传参数的类型，直接传入 path 就行
        path: 'edit/:id',
        component: 'Edit',
        order: 13,
        hidden: true,
        disable: 1,
        icon: '',
      },
    ]
  },
]
// 用户信息
const users = {
  [ADMINTOKEN]: {
    roles: ['admin'],
    uroutes: adminMenus,
    introduction: 'I am a super administrator',
    avatar:
      'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
    name: 'Admin'
  },
  [USERTOKEN]: {
    roles: ['user'],
    uroutes: userMenus,
    introduction: 'I am an editor',
    avatar:
      'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
    name: 'Editor'
  }
}


// 登录
// mock 模拟 post 请求
Mock.mock('/login', 'post', function(option){
  // 请求相关的参数
  // console.log(option)
  if (option.body == 'user') {
    return Mock.mock({
      code: 200,
      data: {
        'token': tokens.user,
        'name': users[USERTOKEN].name
      }
    })
  } else {
    return Mock.mock({
      code: 200,
      data: {
        'token': tokens.admin,
        'name': users[ADMINTOKEN].name
      }
    })
  }
})

// 获取用户信息
Mock.mock('/getUserInfo', 'post', function(option){
  // 请求相关的参数
  // console.log(option)
  if (option.body == 'Editor') {
    return Mock.mock({
      code: 200,
      data: {
        'user': users[USERTOKEN]
      }
    })
  } else if (option.body == 'Admin') {
    return Mock.mock({
      code: 200,
      data: {
        'user': users[ADMINTOKEN]
      }
    })
  }
})

